package fictional.Common;

import java.util.ArrayList;

public class CharacterItem extends ShortCharacterItem {
	
	/**
	 * Standard constructor
	 * @param id The id
	 * @param mid The mid
	 */
	public CharacterItem(int id, String mid) {
		super(id,mid);
		friends = new ArrayList<ShortCharacterItem>();
	}
	
	/**
	 * Copy constructor
	 * @param characater
	 */
	public CharacterItem(CharacterItem character) {
		super(character.getId(), character.getMid());
		setHeight(character.height);
		setWeight(character.weight);
		setSpecies(character.species);
		setGender(character.gender);
		setChildren(character.children);
		setMarriages(character.marriages);
		setRomantics(character.romantics);
		setSiblings(character.siblings);
		setFriends(character.friends);
		setQuotations(character.quotations);
		setStatus(character.status);
		setPlace_of_birth(character.place_of_birth);
		setOccupations(character.occupations);
		setRank(character.rank);
		setImages(character.images);
		setPowers(character.powers);
		setArticle(character.article);
		setOrganizations(character.organizations);
		setProfileImage(character.getProfileImage());
	}
	
	/**
	 * Copies the data from another CharacterItem instance
	 * @param character
	 */
	public void copyData(CharacterItem character) {
		super.setId(character.getId());
		super.setMid(character.getMid());
		setHeight(character.height);
		setWeight(character.weight);
		setSpecies(character.species);
		setGender(character.gender);
		setChildren(character.children);
		setMarriages(character.marriages);
		setRomantics(character.romantics);
		setSiblings(character.siblings);
		setFriends(character.friends);
		setQuotations(character.quotations);
		setStatus(character.status);
		setPlace_of_birth(character.place_of_birth);
		setOccupations(character.occupations);
		setRank(character.rank);
		setImages(character.images);
		setPowers(character.powers);
		setArticle(character.article);
		setOrganizations(character.organizations);
		setProfileImage(character.getProfileImage());
	}	
	
	public void setHeight(float height) {
		this.height = height;
	}
	public float getHeight() {
		return height;
	}
	public void setWeight(float weight) {
		this.weight = weight;
	}
	public float getWeight() {
		return weight;
	}
	public void setSpecies(SpeciesItem species) {
		this.species = species;
	}
	public SpeciesItem getSpecies() {
		return species;
	}
	public void setGender(GenderItem gender) {
		this.gender = gender;
	}
	public GenderItem getGender() {
		return gender;
	}
	public void setChildren(ArrayList<ShortCharacterItem> children) {
		this.children = children;
	}
	public ArrayList<ShortCharacterItem> getChildren() {
		return children;
	}
	public void setMarriages(ArrayList<ShortCharacterItem> marriages) {
		this.marriages = marriages;
	}
	public ArrayList<ShortCharacterItem> getMarriages() {
		return marriages;
	}
	public void setRomantics(ArrayList<ShortCharacterItem> romantics) {
		this.romantics = romantics;
	}
	public ArrayList<ShortCharacterItem> getRomantics() {
		return romantics;
	}
	public void setSiblings(ArrayList<ShortCharacterItem> siblings) {
		this.siblings = siblings;
	}
	public ArrayList<ShortCharacterItem> getSiblings() {
		return siblings;
	}
	public void setFriends(ArrayList<ShortCharacterItem> friends) {
		this.friends = friends;
	}
	public ArrayList<ShortCharacterItem> getFriends() {
		return friends;
	}
	public void setQuotations(String quotations) {
		this.quotations = quotations;
	}
	public String getQuotations() {
		return quotations;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public String getStatus() {
		return status;
	}	
	public void setPlace_of_birth(PlaceItem place_of_birth) {
		this.place_of_birth = place_of_birth;
	}
	public PlaceItem getPlace_of_birth() {
		return place_of_birth;
	}
	public void setOccupations(ArrayList<OccupationItem> occupations) {
		this.occupations = occupations;
	}
	public ArrayList<OccupationItem> getOccupations() {
		return occupations;
	}
	public void setRank(RankItem rank) {
		this.rank = rank;
	}
	public RankItem getRank() {
		return rank;
	}

	public void setImages(ArrayList<ImageItem> images) {
		this.images = images;
	}

	public ArrayList<ImageItem> getImages() {
		return images;
	}

	public void setPowers(ArrayList<PowerItem> powers) {
		this.powers = powers;
	}

	public ArrayList<PowerItem> getPowers() {
		return powers;
	}

	public void setArticle(ArticleItem article) {
		this.article = article;
	}

	public ArticleItem getArticle() {
		return article;
	}

	public void setOrganizations(ArrayList<OrganizationItem> organizations) {
		this.organizations = organizations;
	}

	public ArrayList<OrganizationItem> getOrganizations() {
		return organizations;
	}
	
	private float height;
	private float weight;	
	private SpeciesItem species = new SpeciesItem(-1,null);
	private GenderItem gender  = new GenderItem(-1,null);
	private ArticleItem article;
	private ArrayList<ShortCharacterItem> friends;
	private ArrayList<ShortCharacterItem> siblings;
	private ArrayList<ShortCharacterItem> romantics;
	private ArrayList<ShortCharacterItem> marriages;
	private ArrayList<ShortCharacterItem> children;
	private ArrayList<ImageItem> images;
	private ArrayList<OccupationItem> occupations = new ArrayList<OccupationItem>();
	private ArrayList<PowerItem> powers = new ArrayList<PowerItem>();
	private ArrayList<OrganizationItem> organizations = new ArrayList<OrganizationItem>();	
	private String quotations;
	private String status;
	private PlaceItem place_of_birth = new PlaceItem(-1, null);
	private RankItem rank;
}
